It is common to provide so-called transportable, lap-top, notebook or palm-top computers with built-in displays. Within the computer industry the term "transportable" is generally defined as a computer relatively easily transported for use at another site, but without internal battery power. These transportable computers are sometimes referred to as "luggables". The term "lap-top" refers to a computer usually somewhat smaller than a transportable computer, with an internal battery power supply for portable use. The term "notebook" refers to a later generation of computers than so-called lap-tops, generally smaller than lap-tops (i.e., the size of a notebook, or approximately 9" by 12") and also internally powered by batteries. The term "palm-top" refers to a new generation of portable computer, even smaller than the notebook, and also powered by internal batteries. So-called "palm-top" computers are sometimes referred to by the acronym PA for "personal assistant". For the purposes of this disclosure, all four of these types of computers will be collectively referred to herein as "portable" computers.
Due to the generally limited size or resolution of built-in displays in portable computers, it has been known in the art to provide an external output for a stand-alone display, such as a CRT display monitor or the like. For example, early Osborne (TM), Compaq (TM) and IBM (TM) transportable computers included internal CRT displays of limited size (e.g., 9" diagonal monochrome CRT display or the like). In many instances, these early portable computers were provided with an external output port (MDA, CGA, MCGA or the like) so that a larger external monitor could be attached to the portable computer when higher resolution was desired.
Later generation lap-top computers (e.g., Toshiba (TM) 3100SX or the like) were equipped with similar output ports such that an output intended for an internal monochrome display (e.g., gas plasma flat panel display, LCD flat panel display or the like) could be more effectively displayed on an external color monitor (e.g., VGA, SGVA or the like). More recent notebook size computers (e.g., Apple (TM) Powerbook (TM), Toshiba (TM) 2200 or the like) have provided similar external display outputs.
In most of these computers, the external output ports made available are designed such that only one display at a time can be activated. In other words, either the internal display or the external display can be viewed, but not both simultaneously. Improved VGA controllers designed by Cirrus Logic (TM), the assignee of the present application, incorporate SimulScan (TM), a feature which allows a user to simultaneously view the same image on both an internal display and an external display.
FIG. 1 is a block diagram of a prior art video controller 100 which can display the same video image to both CRT display 106 (or external display) and an internal flat panel display 107 (e.g., LCD flat panel display or the like). Video memory 108 comprises a random access memory (e.g., DRAM, SRAM or the like) which may be accessed through memory controller 101. The size of video memory 108 is determined by the amount of video data to be displayed at one time. For example, for a 640 by 480 pixel monochrome display, a minimum of 307,200 bits of data is needed. If a multi-color or gray scaled monochrome display is desired, then the necessary number of bits per pixel may be increased. For example, if eight bits are provided for each pixel, then each pixel may take one of 2.sup.8 or 256 colors (or gray scales). For eight bits of data per pixel, a 640 by 480 pixel display requires a minimum of 2,457,600 bits of information, or 76.8 Kilobytes of DRAM, where each word comprises 32 bits (four 8-bit bytes), representing four pixels. In practice, a standard size memory of 1 Megabytes may be used and more than one frame of video stored at one time.
As shown in FIG. 1, memory controller 101 accesses video memory 108 and passes to attribute controller 102 one word 150 (32 bits) from video memory 108, preferably using a page mode addressing scheme. Attribute controller 102 contains a register (not shown) for holding four pixel bytes 151 of eight bits each, from 32 bit word 150 supplied by from video memory 108. Attribute controller 102 outputs each of the eight bit pixel bytes 151 in sequence to look-up table 103. Look-up table 103 comprises another random access memory having, in this example, at least 256 addresses. Look-up table 103 converts each of the eight bit pixel bytes 151 into an eighteen bit binary number (hereinafter referred to as pixel word 152) representing a pixel color (or gray scale). Look-up table 103 takes one of the four eight bit pixel bytes 151 as an address for its internal random access memory and outputs an eighteen bit binary number stored as that address as pixel word 152 representing the color (or gray scale) for that pixel. Individual computer application programs may be able to alter the contents of look-up table 103 such that any or all of the 256 available colors may be selected from a palette of 2.sup.18 or 262,144 colors. Of course, other numbers of bits may be used to provide a broader range or palette of available colors. Further, although only 256 of these colors are shown here as being available at one time, other numbers of colors per pixel may be used by increasing the number of bits per pixel byte 151.
From look-up table 103, the eighteen bit pixel word 152 is transferred to DAC 104. DAC 104 comprises a digital-to-analog converter which converts the eighteen bit pixel word 152 into analog RGB (Red, Green, Blue) signals 153, 154, and 155 to drive analog CRT display 106. In the embodiment shown in FIG. 1, six bits each from eighteen bit pixel word 152 are used to create analog signals 153, 154, and 155 for Red, Green and Blue levels. DAC 104 typically comprises a number of current sources which may be added together in a binary fashion to create an appropriate analog signal level for each of the outputs 153, 154, 155 corresponding to a selected six bits of the eighteen bit pixel word 152.
Flat panel display 107 (which may comprise an active or passive LCD flat panel display, plasma display, electroluminescent display or the like), however, does not rely upon an analog signal to determine pixel intensity or color. Thus, in order to provide a simultaneous display on both CRT display 106 and flat panel display 107, two different drive signals must be generated. As shown in FIG. 1, eight bit pixel bytes 151 are converted via look-up table 103 into eighteen bit pixel words 152. Flat panel controller 105 uses eighteen bit pixel words 152 to generate an appropriate video display on flat panel display 107. For a monochrome display, the eighteen bit pixel word 152 may be converted into a grayscale value using an appropriate internal conversion algorithm. Flat panel controller 105, using dithering techniques, generates this grayscale on flat panel display 107. For a color display, eighteen bit pixel word 152 may be converted into separate red, green and blue sub-pixels. Flat panel controller 105, using dithering techniques, generates appropriate color intensities for each subpixel. Such dithering techniques are described in Bassetti, Jr., U.S. Pat. No. 5,122,783, issued Jun. 16, 1992, assigned to the same assignee as the present application and incorporated herein by reference. Thus, with the apparatus of FIG. 1, it is possible to display the same image on both flat panel display 107 and CRT display 106.
Recently, however, so-called "multimedia" presentations have become increasingly popular. These presentations usually, as the name implies, use a variety of media (e.g., sound, image, video or the like) to make an information presentation such as a sales promotion, or educational lecture. For the travelling lecturer, a powerful lap-top or notebook computer, coupled to a portable LCD projector screen and overhead projector can provide a dynamic and effective presentation. An LCD projector screen can be coupled to an external video port (e.g., VGA, EGA or the like) of most portable computers and, when coupled to an overhead projector, project a display image onto a wall or screen. Other types of LCD projector screens incorporate the projector (e.g., light source, focusing lenses) into one compact unit. Alternatively, a large, high resolution monitor can be used to provide a presentation display for a small to medium sized group. The computer allows the use of action video and colorful special effects, and in addition avoids the problems associated with using a stack of overhead transparencies.
However, when such multimedia display equipment is used with conventional portable computers, at best, only the same image can be displayed on both displays (internal or projected) at the same time. In many instances, it is desirable to project the presentation display on an external monitor while displaying other information (e.g., speaker's notes or the like) on an internal display. It is also desirable to be able to switch images between the two displays, such that a speaker can preview an image before projecting the image to the viewing audience. In addition, the need for two video displays containing different images may arise in other situations where computers are used, such as CAD systems, spreadsheets, word processors or the like.
The prior art approach to providing multiple displays with different images for one computer has been to provide separate controllers for each display. Early versions of Lotus 1-2-3 (TM), for example, took advantage of this technique by allowing a user to view two different displays (MDA and CGA) simultaneously. Such a technique was possible, as each controller used a different logical address in the memory of the host computer.
The Apple (TM) Powerbook (TM) computer is believed to use a similar dual controller technique to provide for two different displays having the same resolution and refresh rate. In the lap-top or notebook environment, however, the use of two separate controllers can increase power drain and increase cost, weight and size of the computer, all especially critical in the highly competitive notebook computer market.
Thus, one object of the present invention is to provide a single video controller which can control more than one video display.
A further object of the invention is to provide a video controller which can produce different images on different displays.
A further object is to provide a video controller which can produce different images on different displays and switch the images between the displays.
Yet a further object is to provide a video controller which can produce different images on different displays while providing an easy to use software model for writing video information for the different images into a video memory.